def wrapper():
    a = 1
    def inner():
        print('inner',a)
    inner()

wrapper()


# 闭包的核心特征:
#     嵌套函数：闭包涉及嵌套函数（内部函数定义在外部函数内部）。
#     返回内部函数：外部函数返回内部函数（或保留其引用），使得内部函数可以在外部函数执行完毕后继续使用。
#     引用外部变量：内部函数引用了外部函数的变量。


# def wrapper():
#     a = 1
#     def inner():
#         print('inner',a)
#     return inner

# test = wrapper()
# test()

# 2.阅读代码题 (打印什么? 为什么?)
def create_adders():
    adders = []
    for i in range(3):
        def adder(x):
            return i + x
        adders.append(adder)
    return adders

# create_adders(): 返回一个列表 [adder,adder,adder]
for adder in create_adders():
    print(adder(10))